10 REM BARUKO
20 REM (C)2012 gamecast
30 REM software entertainment
40 REM update 12/2/2012
50 REM version 2.8
60 REM credits jipe&kdl
70 REM "BARUDEMO.BAS"
80 BLOAD"AFX-PT3.bin",R
90 REM INIT DEFUSR
100 DEFUSR1=&HC103:REM PLAY!
110 DEFUSR2=&HC100:REM STOP!
120 DEFUSR3=&HC114:REM SFX
130 REM POKE&HC118,N SFX
140 REM POKE&HC11A,V SFX
150 REM
160 DEFINTA-Z
580 P1=0:CLS
590 REM set clr wall
600 VPOKE8208,16*14+15
610 LI=0:SC=0:BO=500:LV=1:KE=0:PG=0:HI=762
650 LOCATE 1,0:PRINT"1UP":LOCATE10,0:PRINT"HI-SCORE":LOCATE23,0:PRINT"2UP"
660 LOCATE0,1:PRINTP1*100:LOCATE9,1:PRINTHI*100:LOCATE19,0:PRINT"KEYS":LOCATE23,0:PRINTKE:LOCATE19,1:PRINT"REST":LOCATE23,1:PRINTLI
670 L=PG:L=L+1:C$="00":GOSUB 1200:A$=B$:L=LV:GOSUB 1200:
680 LOCATE 27,0:PRINT "SCENE":LOCATE 27,1:PRINT A$;"-";B$
690 A=USR8(PG):A=USR1(0)
700 XG=112:YG=24:XJ=112:YJ=24:G1=7
710 X=8:Y=24:SP=0:Z=0:SK=39
720 PUTSPRITE1,(X,Y),7,SP+Z:PUTSPRITE2,(X,Y),10,1+SP+Z:PUTSPRITE3,(X,Y),12,2+SP+Z
740 PUTSPRITE5,(XG,YG),14,SK
750 ON STRIG GOSUB 1810,1810,1810:STRIG(0)ON:STRIG(1)ON:STRIG(2)ON
760 TI=TI+1:IFTI>10THENTI=0:DM=INT(RND(9)*4+1)
769 ON DM GOSUB850,860,870,880
770 X1=X:Y1=Y
780 REM
790 IFDM>0THENZ=Z+3ANDZ<1
800 IFP1>HITHENHI=P1:LOCATE9,1:PRINTHI*100
810 IFP1>=BOTHENBO=BO+500:LI=LI+1:LOCATE23,1:PRINTLI:POKE&HC11A,15:POKE&HC118,30:A=USR3(0)
820 IFTIME>30THENTIME=0:GOSUB1050:REM MOVE SKELETOR
825 IFX<XG+16ANDX>XG-16ANDY<YG+16ANDY>YG-8THENGOSUB1290
830 IFX<XG+32ANDX>XG-32ANDY<YG+32ANDY>YG-32THENTI=11:GOTO760
840 GOTO760
850 SP=12:Y1=Y:Y=Y-8:GOSUB890:PUTSPRITE1,(X,Y-1),7,SP+Z:PUTSPRITE2,(X,Y-1),10,1+SP+Z:PUTSPRITE3,(X,Y-1),12,2+SP+Z:RETURN
860 SP=0:X1=X:X=X+8:GOSUB890:PUTSPRITE1,(X,Y-1),7,SP+Z:PUTSPRITE2,(X,Y-1),10,1+SP+Z:PUTSPRITE3,(X,Y-1),12,2+SP+Z:IFX=240THENA=USR7(PG):PG=PG+1:A=USR8(PG):X=0:GOSUB1270:GOSUB1230:XG=112:YG=24:RETURNELSERETURN
870 SP=18:Y1=Y:Y=Y+8:GOSUB890:PUTSPRITE1,(X,Y-1),7,SP+Z:PUTSPRITE2,(X,Y-1),10,1+SP+Z:PUTSPRITE3,(X,Y-1),12,2+SP+Z:RETURN
880 SP=6:X1=X:X=X-8:GOSUB890:PUTSPRITE1,(X,Y-1),7,SP+Z:PUTSPRITE2,(X,Y-1),10,1+SP+Z:PUTSPRITE3,(X,Y-1),12,2+SP+Z:IFX=0THENA=USR7(PG):PG=PG-1:A=USR8(PG):X=240:GOSUB1270:XG=112:YG=24:GOSUB1230:RETURNELSERETURN
890 Z1=6144+INT(INT((Y)/8)*32+((X)/8))
900 Z2=VPEEK(Z1)
910 IFX>256THENX=256
920 IFX<0THENX=0
930 IF VPEEK(Z1)=128ORVPEEK(Z1+1)=128ORVPEEK(Z1+32)=128ORVPEEK(Z1+33)=128THEN X=X1:Y=Y1:TI=11
940 IF VPEEK(Z1)=172ORVPEEK(Z1+1)=172ORVPEEK(Z1+32)=172ORVPEEK(Z1+33)=172THENIFKE>0THENKE=KE-1:LOCATE23,0:PRINTKE:VPOKEZ1,32:VPOKEZ1+1,32:VPOKEZ1+32,32:VPOKEZ1+33,32ELSEX=X1:Y=Y1
950 IFZ2=144ANDKE>=1THENVPOKEZ1,32:VPOKEZ1+1,32:VPOKEZ1+32,32:VPOKEZ1+33,32:P1=P1+1:LOCATE0,1:PRINTP1*100:POKE&HC11A,15:POKE&HC118,7:A=USR3(0):KE=KE-1:LOCATE23,0:PRINTKE
960 IFZ2=144ANDKE<=0THENX=X1:Y=Y1
970 IF Z2=168 THEN VPOKEZ1,32:VPOKEZ1+1,32:VPOKEZ1+32,32:VPOKEZ1+33,32:P1=P1+4:LOCATE0,1:PRINTP1*100:POKE&HC11A,15:POKE&HC118,9:A=USR3(0):KE=KE+1:LOCATE23,0:PRINTKE
980 IF Z2=176 THENVPOKEZ1,32:VPOKEZ1+1,32:VPOKEZ1+32,32:VPOKEZ1+33,32:P1=P1+10:LOCATE0,1:PRINTP1*100:GOTO1440
990 IF Z2=152 THEN VPOKEZ1,32:VPOKEZ1+1,32:VPOKEZ1+32,32:VPOKEZ1+33,32:P1=P1+8:LOCATE0,1:PRINTP1*100:POKE&HC11A,15:POKE&HC118,10:A=USR3(0)
1000 IF Z2=136 THEN VPOKEZ1,32:VPOKEZ1+1,32:VPOKEZ1+32,32:VPOKEZ1+33,32:P1=P1+4:LOCATE0,1:PRINTP1*100:POKE&HC11A,15:POKE&HC118,12:A=USR3(0)
1010 IF Z2=160 THEN VPOKEZ1,32:VPOKEZ1+1,32:VPOKEZ1+32,32:VPOKEZ1+33,32:P1=P1+6:LOCATE0,1:PRINTP1*100:POKE&HC11A,15:POKE&HC118,14:A=USR3(0)
1020 IF Z2=184 THEN VPOKEZ1,32:VPOKEZ1+1,32:VPOKEZ1+32,32:VPOKEZ1+33,32:POKE&HC11A,15:POKE&HC118,27:A=USR3(0):GOTO1440
1030 RETURN
1040 REM MOVE SKELETOR
1050 IFG1=0THENG1=7 ELSE 1070
1060 GOSUB1140
1070 IFRD=1THENYJ=YG:YG=YG-8:GOSUB1160
1080 IFRD=2THENXJ=XG:XG=XG+8:SK=39:GOSUB1160
1090 IFRD=3THENYJ=YG:YG=YG+8:GOSUB1160
1100 IFRD=4THENXJ=XG:XG=XG-8:SK=41:GOSUB1160
1110 PUTSPRITE5,(XG,YG-1),15,SK+K
1120 K=K+1ANDK<1
1130 G1=G1-1:RETURN
1140 RC=RD:RD=INT(RND(-TIME)*4+1):IF RD=RC THEN1140
1150 RETURN
1160 K1=6144+INT(INT((YG)/8)*32+((XG)/8))
1170 IF VPEEK(K1)=128ORVPEEK(K1+1)=128ORVPEEK(K1+32)=128ORVPEEK(K1+33)=128THENXG=XJ:YG=YJ:GOTO1140
1180 RETURN
1190 REM X$=STR$(L):C$="000000"
1200 X$=STR$(L):B$=RIGHT$(C$+RIGHT$(X$,LEN(RIGHT$(X$,LEN(X$)-1))),LEN(C$)):RETURN
1210 L=1:C$="00":GOSUB 1200:PRINT B$
1220 REM PRINT SCENE
1230 L=PG:L=L+1:C$="00":GOSUB 1200:A$=B$:L=LV:GOSUB 1200:
1240 LOCATE 27,0:PRINT "SCENE":LOCATE 27,1:PRINT A$;"-";B$
1250 RETURN
1260 REM PUT SPR 1UP
1270 PUTSPRITE1,(X,Y),7,SP+Z:PUTSPRITE2,(X,Y),10,1+SP+Z:PUTSPRITE3,(X,Y),12,2+SP+Z:RETURN
1280 REM death 1up
1290 A=USR2(0):A=USR7(PG)
1300 POKE&HC11A,15:POKE&HC118,11:A=USR3(0)
1310 SP=24:Z=0:FORLP=1TO3
1320 PUTSPRITE1,(X,Y),7,SP+Z:PUTSPRITE2,(X,Y),10,1+SP+Z:PUTSPRITE3,(X,Y),12,2+SP+Z
1330 FORK=0TO500:NEXTK:SP=SP+3:NEXTLP:K=0
1340 LI=LI-1:IFLI<0THEN1390
1350 LOCATE23,1:PRINTLI
1360 PG=0:A=USR8(PG)
1370 A=USR1(0):GOTO700
1380 REM GAME OVER
1390 LOCATE 10,10:PRINT" GAME OVER "
1400 POKE&HC11A,15:POKE&HC118,6:A=USR3(0)
1410 FORI=1TO5000:NEXTI:I=0
1420 RUN"BARUKO.BAS"
1430 REM STAGE CLEAR
1440 A=USR2(0)
1450 POKE&HC11A,15:POKE&HC118,14:A=USR3(0)
1460 LOCATE10,10:PRINT"STAGE CLEAR"
1470 FORI=1TO7000:NEXTI:I=0
1480 FORI=0TO31:PUTSPRITEI,,0,0:NEXTI
1490 IFZ2=184THENLV=LV-1:GOTO1510
1500 LV=LV+1
1510 IFLV=1THENBLOAD"BARUKO00.VRM",S:VPOKE8208,16*14+15
1520 IFLV=2THENBLOAD"BARUKO01.VRM",S:VPOKE8208,16*9+12
1530 IFLV=3THENBLOAD"BARUKO02.VRM",S:VPOKE8208,16*7+4
1540 IFLV=4THENBLOAD"BARUKO03.VRM",S:VPOKE8208,16*14+13
1550 IFLV=5THENBLOAD"BARUKO04.VRM",S:VPOKE8208,16*7+10
1560 IFLV=6THENBLOAD"BARUKO05.VRM",S:VPOKE8208,16*6+4
1570 IFLV>6THENLV=1:GOTO1510
1580 PG=0
1590 GOTO620
1800 REM LOADING GAME
1810 A=USR2(0)
1820 RUN"BARUKO.BAS"
